home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Scope / Scope Disk #142 (199x)(Scope PD)(US)[WB].zip / Scope Disk #142 (199x)(Scope PD)(US)[WB].adf / Muff / Muff1.3.doc < prev    next >
Text File  |  1990-07-30  |  10KB  |  217 lines

  1. ABOUT MUFF
  2. ----------
  3.    The concept for MUFF, all beta testing, and original 1.0 code by Dave 
  4. Wilson. MUFF versions 1.1, 1.2, and 1.3 and Documentation for same written
  5. by George Belicka.  MUFF is Copyright 1990 by Hyperion Systems.  Hyperion
  6. Systems is: George Belicka, David Wilson, Micah Cox, Jim Long, and Nathan
  7. Zook.
  8.  
  9.       MUFF is a shareware release,  NOT public domain.  We therefore
  10.    request that if you use it, please send us $10 for our effort.  This
  11.    contribution will enable us (and inspire us) to continue to write useful
  12.    Amiga programs which in the end will benifit YOU.  If you are really dirt
  13.    poor, we would still like to hear from you, so drop us a line.  The
  14.    C source code to MUFF is available for $30.  If you are presently working
  15.    on the next greatest Shareware release, but are having programming
  16.    problems, write us.  Depending on the work we are always interested in
  17.    helping solve your C or assembly coding problems, and possibly releasing
  18.    the final program under the Hyperion Systems label.
  19.  
  20. Write Hyperion Systems at:
  21.  
  22.       George K. Belicka Jr
  23.       PSC 2  Box 22832
  24.       Keesler AFB, MS 39534
  25.  
  26. Or contact us through our BBS:
  27.  
  28.       The Hyperion Project BBS
  29.       601-432-2845
  30.       110 megabytes
  31.       1200/2400/9600/19200 baud
  32.  
  33.    Hyperion Systems would like to thank Mike Thomas, the creator of the
  34. AmiExpress BBS system, for all the programming tips he provided us with;
  35. and Phil Julias for the unlimited access on his bulletin board... 
  36.  
  37.  
  38. MUFF.ZOO
  39. --------
  40.    The MUFF.ZOO should contain the following files:
  41.  
  42. Muff1.3a     - The operational MUFF program, version 1.3a
  43. Muff1.3.DOC  - This documentation file
  44. Muff.cfg     - An example configuration file (the one we use)
  45. zzzzpad      - Padding file (duh)
  46.  
  47.    Permission is given to sysops of public bulletin boards and online
  48. services to post this ZOO so long as it remains unaltered and free of charge.
  49. The ZOO may also be included on any public domain library diskette as long
  50. as all files are included, and no fee above $10 is charged for the
  51. diskette.  If your user group is including this file on a club disk available 
  52. for public sale, we ask that you please write and inform us of this.
  53.  
  54.  
  55. MUFF 1.3  (released version) - Documentation
  56. --------------------------------------------
  57.    MUFF version 1.3 operates the same as MUFF version 1.2, except for the
  58. inclusion of a configuration file.  MUFF is no longer hard-coded to look
  59. for A68 (PD assembler) and LC (Lattice compiler).  The configuration file
  60. is called MUFF.CFG, and is located in your current working directory, or
  61. located in your INCLUDE: directory.  MUFF will first read the configuration
  62. in the current directory and use it, or if MUFF cannot find the file it
  63. will look next to the INCLUDE: directory.  This allows you to place a 
  64. default configuration file (values you commonly use) in your INCLUDE:
  65. directory, or if special values are needed for your present work, the local
  66. configuration will be used.
  67.  
  68.    The configuration file looks as follows and is included with the MUFF
  69. package.  This file is editable by any ED (ASCII) type of editor.
  70.  
  71. FinalOut
  72. A68
  73. LC -ccdstu -v
  74. LIB:lc.lib LIB:amiga.lib SD SC ND CHIP
  75.  
  76.    FinalOut would be the filename you want for your output code after
  77. linking (the [-d] option would ignore this field, see below).  A68 is the
  78. assembler you wish to invoke, this could be changed to ASM from Lattice.
  79. The LC [flags] is, of course, the command to invoke the Lattice compiler.  I
  80. do not know if Manx Aztec C could be substituted on this line, but if the
  81. Manx compiler allows the filename to be the last parameter on a commandline
  82. (as LC does) then Manx's compiler should be insertable.  Finally, the
  83. libraries and flags used for BLINK are listed.  Invoking BLINK is still
  84. hard coded into MUFF 1.3.  Obviously any flags on these lines are editable.
  85.  
  86.    If we recieve enough response we will be expanding this configuration
  87. file to include much more flexibility...  If you want it, you'll have to
  88. ask for it...  We welcome all suggestions...
  89.  
  90.  
  91. MUFF 1.2  (unrleased version) - Documentation
  92. ---------------------------------------------
  93. Syntax:  MUFF [-d] <filename.a> <filename.c> <filename.o>... 
  94.  
  95.    MUFF (please don't ask about the name, it's a long story) started life
  96. as a little tool we wrote to replace LMK.  We found ourselves spending
  97. more time compiling, assembling and blinking than working on our code, so
  98. we decided to once and for all fix it...
  99.  
  100.    Say, for example, you were working on a program that consisted of two
  101. parts, one written in C, and one written in assembly.  Normally you would
  102. have to assemble the assembly into an object file, compile the C source
  103. to an object file, and then finally BLINK them together along with your 
  104. startup object code (c.o, cbak.o, arpc.o).  This process involves
  105. your manually having to complete each step.  MUFF takes care of the drudgery
  106. of this by allowing you to complete all three steps with one commandline.  
  107.  
  108. CLI SESSION BEFORE MUFF:
  109. ------------------------
  110. 1> LC -ccdstu -v -Hincludes.sym sourcecode.c
  111.  
  112.    (Lattice would now compile: sourcecode.c)
  113.  
  114. 1> A68k assemcode.a
  115.  
  116.    (Assembler 68000 would now assemble: assemcode.a)
  117.  
  118. 1> BLINK from c.o sourcecode.o assemcode.o to FINAL library lc.lib
  119. amiga.lib SD SC ND CHIP
  120.  
  121.    (Blink would now link: c.o sourcecode.o assemcode.o)
  122.  
  123.  
  124. CLI SESSION WITH MUFF:
  125. -----------------------
  126. 1> MUFF c.o sourcecode.c assemcode.a
  127.  
  128.    (MUFF will now automatically compile sourcecode.c, assemble assemcode.a
  129.    and link the three objects together)
  130.  
  131.  
  132.    No, MUFF isn't actually a compiler, assembler, or linker; all MUFF does
  133. is process your commandline and call the appropriate utility to process
  134. each specified file.  When MUFF detects a file followed by .a it will
  135. automatically assume that file is in assembly language and attempt to
  136. assemble it.  Similarly, if a file is followed by .c it is assumed to be
  137. C source code; and is compiled.  Object files (.o) are skipped until linking
  138. occurs, but when linking starts they are linked in with the other files
  139. in the order they were listed on your commandline.  This means you will
  140. want to make sure you always specify your startup code (c.o, cbak.o or
  141. arpc.o) first on your commandline.
  142.  
  143.    If a file fails to compile or assemble, MUFF will detect the absence of
  144. the appropriate object file that should have been generated.  This will
  145. cause the linking to abort.  If linking was already disabled (-d flag) MUFF
  146. still informs you of the missing object files.  A complete list of MUFF
  147. errors is shown at the end of this file.
  148.  
  149.    If an error does occur in a particular file, and the linking fails,
  150. relax.  You won't have to re-assemble and re-compile all your code, only 
  151. re-assemble/compile the file that failed.  Specify all the other files as
  152. object files (.o) (because they were just assembled/compiled to object) and
  153. MUFF will re-assemble/compile the one problem file, and then link normally.
  154.  
  155.    Here is an example of this technique:
  156.  
  157. 1> MUFF c.o sourcecode.c assemcode.a
  158.  
  159.    (Let's assume the assembly code assembles ok, but you recieve an error
  160.    when compiling sourcecode.c.  Because sourcecode.c didn't compile, the
  161.    linking aborted.  After correcting the error in sourcecode.c the
  162.    following commandline could be used.)
  163.  
  164. 1> MUFF c.o sourcecode.c assemcode.o
  165.  
  166.    (Notice this time, we specify assemcode.o because assemcode.a was 
  167.    assembled without error the first time we invoked MUFF.  Since we
  168.    made no changes to this code, assemcode.o is still a valid object file
  169.    for linking.)
  170.  
  171.  
  172.    The usefulness of this becomes more apparent when you are working with
  173. a large number of files to compile and assemble, and an error appears in
  174. one of the files.  Instead of waiting to re-compile/assemble all of the
  175. specified files, you merely reference the object files made on the first
  176. attempt. 
  177.  
  178.    MUFF also has an optional flag [-d] which, when used, will disable
  179. MUFF from linking your object files.  Any assembly or C source code files
  180. on the commandline will be assembled/compiled normally, but no linking will
  181. occurr.  When using this option, any object files specified on the
  182. commandline will be ignored.
  183.  
  184.  
  185. ERROR CODES:
  186. ------------
  187. 1 - Unknown filetype - This error occurs when MUFF detects a file with
  188.                        no extension.  MUFF will display the problem
  189.                        filename.
  190.  
  191. 2 - Unknown extension type - This error occurs when MUFF finds a file
  192.                              with an extension other than .a .o or .c.
  193.                              Muff will display the problem filename.
  194.  
  195. 3 - Unknown flag type - This error occurs when MUFF finds a flag specified
  196.                         that it does not understand.  Presently the only
  197.                         flag in use is -d.
  198.  
  199. 4 - No files specified - This error occurs when MUFF has no work to do.
  200.  
  201. 5 - Unable to locate MUFF.cfg - This error occurs when MUFF cannot find
  202.                                 the file MUFF.cfg in the current directory
  203.                                 or in the INCLUDE: directory.
  204.  
  205. 6 - Duplicate files on commandline - This error occurs when MUFF has been
  206.                                      given duplicate filenames.  The problem
  207.                                      filename will be displayed.
  208.  
  209. 7 - Unable to locate file - This error occurs when MUFF cannot locate a
  210.                             specified filename.  The problem filename will
  211.                             be displayed.
  212.  
  213. 8 - Linking aborted, unable to locate object - This error occurs when a file
  214.                                                fails to compile or assemble.
  215.                                                The problem filename will be
  216.                                                displayed.
  217.